home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMIGA-CD 2
/
Amiga-CD - Volume 2.iso
/
gepackte_disketten
/
1993
/
05_93_2.dms
/
05_93_2.adf
/
cags
/
CAGS2-Anleitung
< prev
next >
Wrap
Text File
|
1993-04-23
|
25KB
|
649 lines
(*---------------------------------------------------------------------------*)
(* The *)
(* Cyclic Animation-Generating System *)
(* Version 2.0 *)
(* *)
(* *)
(* von Andreas Maschke *)
(*---------------------------------------------------------------------------*)
Inhalt:
I. Einleitung Zeile 34
II. Warum CAGS2 ? Zeile 126
III. Anwendungsgebiete Zeile 167
IV. Die Arbeitweise des Programms Zeile 195
V. Die verwendeten Datenformate und -bezeichnungen Zeile 221
VI. Das Wichtigste: Die Scriptsprache Zeile 254
VII. Tutorial: Das Mobile Zeile 571
VIII. Abschließende Bemerkungen Zeile 623
IX. CAGS3 Zeile 650
(*---------------------------------------------------------------------------*)
I. Einleitung
CAGS (The Cyclic Animation-Generating System) ist ein Programm, mit dem sich aus
Einzelbildern und Soundeffekten perfekt vertonte Animationen auf einfachste Art
generieren lassen.
Die Leistungsmerkmale:
-bis zu 999 Frames,
-frei definierbare Abspielsequenz, die aus bis zu 32767 Angaben bestehen
kann, gemeint ist die Reihenfolge, in der die Frames abgespielt werden
sollen (wie Loop und Pingpong),
-zu JEDEM Frame, wenn erwünscht, ein Musikstück/Soundeffekt (MED-Format (in
dieses lassen sich alle #?-Tracker-Formate umwandeln)),
-somit sind Echo u.a. Effekte sowie MIDI möglich (diese Version unterstützt kein MIDI),
-zu JEDEM Frame, wenn erwünscht, eine neue Abspielgeschwindigkeit,
-beliebige Bildschirmgröße (von 32*30 bis 736*580),
-automatische Bildschirmzentrierung
-wechselnde Paletten,
-HAM/EHB,
-hohe Abspielgeschwindigkeit,
-Kickstart1.3 bis 3.0,
-Mehr-Disketten-Animationen
-einfache Handhabung
Das System besteht aus drei Programmen:
CAGS2: Hauptprogramm,
CAGSPlay: eingeschränkte Version und
Encryptor: Script-Verschlüsseler.
CAGS benötigt ein Script, in dem die nötigen Informationen über die Frames,
die Module und die eigentlichen Sequencen stehen.
Der Aufbau eines solchen Scriptes wird weiter unten beschrieben.
Die Beschreibung der drei Programme:
CAGS2:
Dies ist das eigentliche Programm, das alle Funktionen beeinhaltet,
so unterstützt es den Anwender beim Austesten von Scripts mit detaillierten
Fehlermeldungen, es ist aber beim Parsing des Scripts relativ langsam.
Gestartet wird es auf Doppelklick, worauf sich ein ASL-Requester zur Auswahl
des Scriptes öffnet, oder in der Shell mit
"CAGS2 <script>",
wobei <script> der Pfad der Scriptdatei ist. Dabei wird das Suffix ".CAGS"
unterstützt, d.h. daß das Script "Anim.CAGS" durch
"CAGS2 Anim" gefunden wird.
Nun wird das Script "übersetzt", tritt dabei ein Fehler auf, so wird die
Art des Fehlers ausgegeben. Zusätztlich wird auch die Zeile und die
ungefähre Spalte angeben, es bietet sich also an, CAGS2 aus dem Editor
heraus zu starten. Da das Programm reentrant ist, gewinnt man beim Testen des
Scriptes durch "resident CAGS2" zusätzlich Zeit.
War das Script o.k., so erscheint das Arbeitsdisplay und die Daten werden geladen.
Tritt dabei wiederum ein Fehler auf, so wird auch hier eine detaillierte Meldung
ausgegeben.
CAGSPlay:
Dieses Programm leistet das gleiche wie CAGS2, nur gibt es keinerlei
Fehlermeldungen aus, öffnet keinen Dateirequester und es bearbeitet nur
mit dem Encryptor verschlüsselte Scripts !
Es ist aber beim Parsing sehr viel schneller als CAGS2.
Man sollte also nur mit CAGS2 getestete, lauffähige Scripts mit diesem Programm
bearbeiten, der Vorteil liegt in der Schnelligkeit und Kürze des Programmes,
außerdem ist das Paket für kommerzielle Zwecke entworfen worden,
so ist CAGSPlay der frei vertreibbare Player, wie das so üblich ist.
Wer also nur CAGSPlay besitzt, kann keine Animationen selbst erstellen, da
das Script IDEA-verschlüsselt wird.
Dieser Algorythmus gilt als absolut sicher, benutzt wird übrigens die
xpkIDEA.library. Das nötige Passwort ist auch ziemlich sicher, da es
zur Laufzeit durch eine recht komplizierte Formel berechnet wird, es läßt
sich also nicht patchen (Ich selbst kenne es nicht einmal).
Encryptor:
Dieses Programm verschlüsselt unverschlüsselte Scripts und entschlüsselt
verschlüsselte Scripts. Für den Aufruf gilt das gleiche wie für CAGS2.
Das Programm zeigt nach dem Start an, ob das Script verschlüsselt wird
oder nicht (den Status erkennt es selbst).
Wichtig ist, daß Encryptor und CAGSPlay die gleiche Versionsnummer haben,
sonst sind die Passwörter inkompatibel.
...
Das Konzept von CAGS ist, die maximale Abspielgeschwindigkeit bei der
Verwendung von Fast-RAM zu erreichen, sodaß keinerlei Delta-Kompression
verwendet wird. Somit ist auch das Handling einfacher (es ist ein Unterschied
ob ein Read-Error bei einem 3 MB Anim-File auftritt, das dann vollständig
verloren ist, oder ob sich dieser nur auf ein Frame bezieht.
Außerdem gehört spätestens nach dem Erscheinen der neuen Amiga-Modelle das
ANIM-Opt#5-Format der Vergangenheit an.
(*---------------------------------------------------------------------------*)
II. Warum CAGS ?
In den drei Jahren, in denen ich mich nun mit Computeranimationen
beschäftige, habe ich kein Programm finden können, mit dem sich Ideen
bis ins Detail verwirklichen lassen. Gute RayTracer gibt es genug,
aber damit lassen sich halt nur die Einzelbilder berechnen, was dann ?
-Angenommen, man berechnet die Animation eines Mobiles, und spielt diese
dann in DPaint im Pingpong-Modus ab. Der erzielte Effekt ist gleich Null,
erstens ist die Abspielgeschwindigkeit nicht konstant, zweitens ist
das Wichtigste, das Aneinanderschlagen der Kugeln, nicht zu hören.
Neben hoher Abspielgeschwindigkeit benötigt man also Soundunterstützung,
und zwar mit all den schönen Effekten wie Echo, Fading usw., die gängige
Musikprogramme bieten.
-Oder was macht man, wenn der Bewegungsablauf einer Animation nicht ganz
stimmt (z.B. fallender Ball: h=g/2*t^2 , das läßt sich offenbar schwer im
Raytracer perfekt hinkriegen) ? Alle Frames nochmal berechnen ?
Man benötigt die Möglichkeit, für jedes Frame eine bestimmtes Delay
anzugeben (also z.B. dieses nach obiger Formel zu berechnen).
-Was ist, wenn man aus Speicherplatzgründen nur kleine Bilder berechnen kann ?
Die meisten Animationsprogramme unterstützen nur bildschirmgroße Animationen
bzw. klemmen die Frames dann in die obere linke Ecke, wobei dann auch noch
sehr schwere Fehler bei der Bildschirmdarstellung vorkommen.
Man benötigt neben der Unterstützung beliebiger Bildschirmgrößen eine
Auto-Center-Funktion.
-Oder folgendes: Eine Kugel schwingt immer heftiger bis sie schließlich
explodiert. Beim Schwingen sollen aber immer die gleichen Frames verwendet
werden.
Hierzu benötigt man frei definierbare Sequencen.
All dies bietet CAGS.
(*---------------------------------------------------------------------------*)
III. Anwendungsgebiete
CAGS eignet sich besonders für Raytracing-Animationen im HAM-Modus, wofür es
auch konzipiert ist.
Alle anderen normalen Grafik-Modi funktionieren aber einwandfrei (auch
maximaler Overscan).
Systemanforderungen:
Der Speicherverbrauch der Frames läßt sich einfach berechnen:
(width DIV 8)*height*planes*frames+2^planes*8*frames
Dazu kommen noch die Soundmodule (Summe der Dateilängen), die Felder für
die Sequencen (INTEGER=unwesentlich) und ca. 50 K für das eigentliche Programm,
d.h. mit 200K könnte man schon ein Bild anzeigen und dazu einen Sound abspielen.
empfohlene Animationssoftware:
bei 1-2MB: FastRay, Reflections1.6 & Animator1.6, GM-The Animator (ein auch von
mir entwickeltes Paket zur Animation und Metamorphose von
dreidimensionalen Funktionen (1 Lichtquelle))
bei 2-4MB: Reflections2.0 & Animator2.0
bei 4-8MB: Imagine
Natürlich eignen sich auch alle anderen bilderzeugenden Programme wie MorphPlus,
DPaintIV, ..., aber damit kenne ich mich nicht aus (Speicherverbrauch).
(*---------------------------------------------------------------------------*)
IV. Die Arbeitweise des Programms
Zuerst benötigt CAGS ein Script, indem die Information über Größe, Anzahl
und Ort der Bilder, Anzahl der MED-Module und die Sequencen stehen.
Dieses wird übersetzt, trat dabei ein Fehler auf, so wird eine delailierte
Meldung über die Art des Fehlers ausgegeben.
Am besten, man startet das Programm beim Testen aus dem Editor heraus,
dafür gibt das Programm bei Syntax-Fehlern auch die Spalte und Zeile an.
Ist das Script o.k., so werden nun die Daten geladen und das Script
abgearbeitet.
Tritt während der Arbeit an irgendeiner Stelle ein Fehler auf, so wird
sämtlicher Speicher etc. freigegeben. Abstürze sind nicht vorgekommen.
Die Frames werden einzeln in den Speicher geladen. Das hat folgende Vorteile:
-Keine Wartezeit beim Erzeugen der Animation (Die Zeit, um 100 Frames in
irgend ein Programm zu laden, das dann ein Animfile daraus herstellt, ist
gemeint, das ist nicht unwesentlich !),
-sehr hohe Abspielgeschwindigkeit,
-volle Kontrolle über jedes Frame.
Der Speicherverbrauch im HAM-Modus ist dabei nur unwesentlich höher als
bei Verwendung von Delta-Kompression.
Das deshalb, weil HAM-Bilder aus dem RayTracer so große Unterschiede aufweisen,
das die Delta-Files nahezu Framegröße haben.
(*---------------------------------------------------------------------------*)
V. Die verwendeten Datenformate und -bezeichnungen
CAGS2 liest Bilder im IFF-Format (Imagine,DPaint,ADPro...) und MED-Module,
die durchaus nur ein Sample und eine Note enthalten können. (Oh ja, der
Aufwand lohnt sich.)
Die Bilder können
-ungepackt,
-byte-run1-gepackt,
-XPK-Nuke-gepackt (meiner Meinung der effizienteste Packer, das Entpacken
ist praktisch (zeitmäßig) nicht zu bemerken),
-byte-run1- und XPK-Nuke-gepackt sein.
MED-Module zu packen bringt nichts, also habe ich diese Möglichkeit nicht
implementiert.
Alle Bilddateien müssen die gleiche Auflösung etc. haben, und müssen in einen
Directory liegen. Der Dateinahme beginnt mit "PIC.0" und danach folgt die
entsprechende Nummer von 1-999. Alle Bilder müssen von einem wählbaren Index
an lückenlos vorhanden sein, sollen also 3 Frames ab Nummer 9 verwendet
werden, so müssen folgende Bilder im entspechenden Verzeichnis liegen:
"PIC.0009","PIC.0010" und "PIC.0011" .
Für die Module gilt ähnliches, nur beginnt hier der Name mit "MOD.0".
Unterscheiden sich die Werte für Breite,Höhe und Anzahl der Bitplanes der
Frames, die im Script angegeben wurden, von denen, die im BMHD-Chunk stehen,
so wird eine entsprechende Meldung mit dem korrekten Wert ausgegeben.
WICHTIG: Alle anderen Werte werden akzeptiert, so ist es z.B. möglich,
aus Lores-Frames eine Animation im Hires-Interlace-Modus zu erstellen.
Sind die Frames kleiner als ein Standard-Bildschirm, so werden sie später
automatisch zentriert !
(*---------------------------------------------------------------------------*)
VI. Das Wichtigste: Die Scriptsprache
Das Script besteht aus der Zuweisung von Werten in einer an OBERON angelehnten
Syntax, also
var:=<Wert>; oder var=<Wert>; .
Die Reihenfolge der Anweisungen ist unwichtig, zwischen zwei Befehlen können
120 Leerzeichen oder Leerzeilen stehen, damit ist für Übersichtlichkeit
gesorgt. Groß-/Kleinschreibung ist auch egal.
Minimum sind folgende 5 Werte: frames,width,height,planes und end,
d.h., daß folgendes kurzes Script
"width=160; height=100; planes=3; frames=6; end=true;"
vollkommen ausreicht, es spielt alle Bilder vorwärts ab, bis die linke
Maustaste gedrückt wird.
Nun die Beschreibung aller Variablen:
1. FRAMES
Beschreibung: Anzahl der Bilder,
Wertebereich: 1 bis 999,
Defaultwert: nicht gesetzt
Beispiel: "Frames=55;"
2. WIDTH
Beschreibung: Breite der Bilder
Wertebereich: 32 bis 736 (muß durch 16 teilbar sein)
Defaultwert: nicht gestetzt
Beispiel: "Width=204;"
3. HEIGHT
Beschreibung: Höhe der Bilder
Wertebereich: 30 bis 580
Defaultwert: nicht gesetzt
Beispiel: "Height=133;"
4. PLANES
Beschreibung: Anzahl der Bitplanes
Wertebereich: 1 bis 6
Defaultwert: nicht gesetzt
Beispiel: "Planes=6;"
5. TITLE
Beschreibung: Title der Animation, der im CAGS-Fenster erscheint
Wertebereich: maximal 30 Zeichen, keine '"'-Zeichen setzen !
Defaultwert: "untitled"
Beispiel: "Title=My first step;"
6. LACE
Beschreibung: Interlace an/aus (geht auch bei Nicht-Interlace-Bildern)
Wertebereich: TRUE/FALSE (T/F reicht auch);
Defaultwert: FALSE, wird bei Height>290 automatisch auf TRUE gesetzt
Beispiel: "Lace=True;" ("Lace=False;" geht zwar, bringt aber nichts)
7. HIRES
Beschreibung: Hires an/aus (geht auch auch bei Nicht-Hires-Bildern)
Wertebereich: TRUE/FALSE
Defaultwert: FALSE, wird bei Width>366 automatisch auf TRUE gesetzt
Beispiel: "Hires=T;"
8. HAM
Beschreibung: HAM an/aus
Wertebereich: TRUE/FALSE
Defaultwert: TRUE bei Planes=6
Beispiel: wird ggf. automatisch überschrieben
9. EHB
Beschreibung: ExtraHalfbrite an/aus
Wertebereich: TRUE/FALSE
Defaultwert: FALSE
Beispiel: "ehb=t;" (dadurch wird HAM auf FALSE gesetzt)
10. MODULES
Beschreibung: Anzahl der MED-Module
Wertebereich: 0-999
Defaultwert: 0
Beispiel: "modules=3;"
11. PICPATH
Beschreibung: Pfad für die Bilder
Wertebereich: maximal 120 Zeichen, keine '"'-Zeichen angeben
Defaultwert: aktuelles Verzeichnis
Beispiel: "picpath=rad:rt Pics/;" (Leerzeichen erlaubt)
12. MODPATH
Beschreibung: Pfad für die Bilder
Wertebereich: maximal 120 Zeichen, keine '"'-Zeichen angeben
Defaultwert: aktuelles Verzeichnis
Beispiel: "modpath=ST-67:modules/;"
13. PICSTART
Beschreibung: Anfangsindex für Bilder
Wertebereich: 0 bis 999-Frames
Defaultwert: 1
Beispiel: "picstart=10;" (Bild "PIC.0010" ist erstes Bild)
14. ALTERPAL
Beschreibung: alternierende Palette an/aus
Wertebereich: TRUE/FALSE
Defaultwert: FALSE
Beispiel: "alterpal=t;" (ist für Raytracing-Bilder im HAM-Modus notwendig)
15. LOOP
Beschreibung: Vordefinierte Sequenz: vorwärts endlos abspielen
Wertebereich: TRUE/FALSE
Defaultwert: TRUE
Beispiel: wird ggf. automatisch überschrieben
16. PINGPONG
Beschreibung: Vordefinierte Sequenz: vor und zurück endlos abspielen
Wertebereich: TRUE/FALSE
Defaultwert: FALSE
Beispiel: "pingpong=t;" (setzt loop auf FALSE)
17. VARSPEED
Beschreibung: im Normal-Sequence-Modus (Loop,Pingpong) kann man hiermit die
Abspielgeschwindigkeit live beeinflussen:
LMB-schneller, RMB-langsamer, BMB-exit
Wertebereich: TRUE/FALSE
Defaultwert: FALSE
Beispiel: "varspeed=true;" (in diesen Modus gelangt man auch
durch Drücken des Joystick-Knopfes im Normal-Sequence-Modus)
18. INTROMUS
Beschreibung: spielt während des Ladens der ganzen Daten schon ein Musikstück
ab, ist Modules=0, so wird das Stück bis ans Ende der Animation
gespielt
WICHTIG: Das Stück muß "MOD.0000" heißen
Wertebereich: TRUE/FALSE
Defaultwert: FALSE
Beispiel: "intromus=t;"
19. DELAY
Beschreibung: gibt im Normal-Delay-Modus die Wartezeit in 1/50 s zwischen
zwei Frames an
Wertebereich: 0 bis 3000 (1 Minute)
WICHTIG: 0 nicht im HAM-Modus verwenden
Defaultwert: 1
Beispiel: "delay=143;"
20. PICSEQ
Beschreibung: Dies ist neben MODSEQ und DELSEQ das mächtigste Kommando von CAGS,
erlaubt es, die Frames in beliebiger Reihenfolge abzuspielen.
SYNTAX: "PICSEQ=<Anzahl>:<Nummer>,<Nummer>,...,<Nummer>;
Die Anzahl darf MAXINT=32676 nicht überschreiten, aber das sollte für jede
Anwendung ausreichen.
Nummer gibt die Nummer des Frames an, und zwar von 1 bis frames.
WICHTIG: LOOP und PINGPONG werden durch PICSEQ überschrieben
Beispiel1: Darstellung der LOOP-Sequenz bei 10 Frames durch PICSEQ:
"PICSEQ=10: 1,2,3,4,5,6,7,8,9,10;"
Kann auch so geschrieben werden:
"PICSEQ=10: 1,
2,
3,
4, 5, 6, 7, 8,
9, 10 ;"
Beispiel2: Darstellung der PINGPONG-Sequenz bei 10 Frames:
"PICSEQ=18:1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2;"
Beispiel3: Darstellung einer sich aufschaukelnden Schwingung bei 5 Frames:
"PIQSEQ=24:
1,2,1,
1,2,3,2,1,
1,2,3,4,3,2,1,
1,2,3,4,5,4,3,2,1;"
21. MODSEQ
Beschreibung: Soundeffekt-Sequenz
SYNTAX: "MODSEQ=<Anzahl>:<Nummer>,<Nummer>,...,<Nummer>;
Die Anzahl darf MAXINT=32676 auch nicht überschreiten.
Nummer gibt
-die Nummer des Modules an, und zwar von 1 bis modules oder
-weist bei -1 den Player an zu stoppen der
-weist bei -2 den Player an, nichts zu tun bzw. das aktuelle
Modul weiter zu spielen.
Für die Anzahl (MODSEQ) muß folgendes gelten:
-im LOOP-Modus : MODSEQ=FRAMES,
-PINGPONG-Modus: MODSEQ=2*FRAMES-2,
-Sequence-Modus: MODSEQ=PICSEQ;
Beispiel: 5 Frames, PINGPONG-Modus, ein auf ein Brett schlagender Hammer.
Angenommen, der Hammer berührt das Brett bei Frame3 und bohrt sich bis Frame 5
in das Brett etwas hinein und das Modul, das den Ton des Schlages enthält,
ist das Modul "MOD.0001", das Modul, das das Knirschen des Brettes
enthält, ist "MOD.0002", dann führt
"PINGPONG=TRUE;
MODSEQ=8:
-2, (* Frame1 -keine Aktion *)
-2, (* Frame2 -keine Aktion *)
1, (* Frame3 -Schlag *)
-2, (* Frame4 -keine Aktion *)
2, (* Frame5 -Knirsch *)
-2, (* Frame4 -keine Aktion *)
-1, (* Frame3 -Player aus *)
-2; (* Frame2 -keine Aktion *) (Restart)
zum gewünschten Ergebnis.
22. DELSEQ
Beschreibung: Delay-Sequenz (zu jedem Bild wird die Wartezeit definiert)
SYNTAX: "DELSEQ=<Anzahl>:<Nummer>,<Nummer>,...,<Nummer>;
Die Anzahl darf MAXINT=32676 auch nicht überschreiten.
Die Anzahl (DELSEQ) muß mit PICSEQ bzw. MODSEQ übereinstimmen
WICHTIG: DELAY wird dadurch wirkungslos, auch VARSPEED funktioniert
nicht
Nummer gibt folgendes an:
-von 0 bis 3000 die Wartezeit in 1/50 s an
-bei -1 wird auf das Drücken der rechten Maustaste gewartet
- -2 beendet die Animation
23. DCHANGEx (1 bis 5)
Beschreibung: Diskettenwechsel erlauben
Wertebereich: 1 bis frames
Beispiel: "DCHANGE3=15"
Dieser Parameter hat den Sinn, eine z.B. 5 MB große Animation auf verschiedenen
Disketten zu verteilen. Auf jeder muß sich der mit PICPATH definierte Pfad befinden,
es ist zu empfehlen, in PICPATH keinen Diskettennamen zu verwenden, da sonst alle
Disketten den gleichen Namen haben müssen.
Es können 5 Diskettenwechsel durchgeführt werden (d.h. man kann die Animation
auf 7 Disketten verteilen, da mit MODPATH eine eigene für die Module angegeben werden
kann. Das sollte für jede Anwendung ausreichen, meine letzte 5MB große Animation habe
ich z.B. auf 4 Disketten verteilt.
Hier sollte man auf jeden Fall INTROMUS=TRUE setzen, meine Animation (byte-run1 und
NUKE-gepackt) benötigte 10 Minuten Ladezeit.
Vor dem Frame mit der Nummer, die hinter DCHANGEx angeben wird, erfolgt der
Diskettenwechsel, dabei wird im Status-Fenster statt "Loading..." "DISKCHANGE"
angezeigt, nun muß die richtige Diskette eingelegt werden, man sollte noch etwa
3 Sekunden warten, bis das DOS die Diskette anerkannt hat, dann die linke
Maustaste drücken.
Beispiel: 5 Disketten
Die Disketten mögen folgende Bilder enthalten:
1.Diskette: "PIC.0001" bis "PIC.0009",
2.Diskette: "PIC.0010" bis "PIC.0023",
3.Diskette: "PIC.0024" bis "PIC.0026",
4.Diskette: "PIC.0027" bis "PIC.0148" und
5.Diskette: "PIC.0149" bis "PIC.0160"
Dann führt etwa folgendes Script zum gewünschten Erfolg:
"width=320;height=256;planes=5;
frames=160;
picpath=df0:;
dchange1=10;
dchange2=24;
dchange3=27;
dchange4=149;
end=true;"
Man sollte also die Disketten unbedingt numerieren, damit das Einlegen einer
falschen vermieden wird, dann würde ja das nächste Bild nicht gefunden und die
Arbeit abgebrochen werden.
Hintergrund: Es wird nicht für jedes Bild ein Dateiname reserviert, weil dadurch
das Handling sehr erschwert würde (bei 100 Bildern 100 Dateinamen
einzutippen ist nicht sehr unterhaltsam), außerdem würde dadurch auch
der Speicherverbrauch ansteigen.
24. END
Beschreibung: Ende des Scriptes
Beispiel: "end=t;"
DIESE ANWEISUNG MUSS AM ENDE JEDES SCRIPTES STEHEN !
Sinn: Nach diesem Befehl kann man beliebige Texte (Kommentare) in das Script
schreiben, das ist manchmal sehr angenehm.
(*---------------------------------------------------------------------------*)
VII. Tutorial: Das Mobile
Wir müssen zuerst die Bilder berechnen, z.B. mit Reflections. Und zwar so,
daß die Bewegung in einer Richtung vollständig ist. Ich habe 13 Frames
berechnet.
Es ist sicher angebracht, das Geräusch beim Aneinanderschlagen der Kugeln
abwechselnd auf dem linken und auf dem rechten Lautsprecher ausgeben zu
lassen, wir benötigen also zwei MED-Module.
Zuerst suchen wir nach einem Sample, das metallisch klingt, z.B. irgend ein
Hihat. Nun laden wir MED, gehen in den EDIT-Modus und laden unser Sample.
Nun setzen wir auf Spur 0 das Sample, z.B. Note C-3. Jetzt speichern
wir das ganze als "rad:MOD.0001" ab, löschen die eben gesetzte Note und
setzten sie auf Spur 1 und speichern unser Modul als "rad:MOD.0002" ab.
Nun formatieren wir eine Diskette, benennen sie "Anim-Disk" und richten
die Verzeichnisse "PICS" und "MODS" darauf ein. Auf diese kopieren wir
in die entsprechenden Verzeichnisse die Bilder und die Module.
Nun geht's los. Editor laden und:
"TITLE= The Mobile;
FRAMES=13;
WIDTH=272;
HEIGHT=208;
PLANES=6;
MODULES=2;
PICPATH=Anim-Disk:PICS/;
MODPATH=Anim-Disk:MODS/;
ALTERPAL=TRUE;
PINGPONG=TRUE;"
Die Vertonung ist einfach:
Bei meinen Bildern berühren sich die Kugeln bei Frame 7, also
"MODSEQ=24: (* 2*frames-2 *)
-2,-2,-2,-2,-2,-2,
1, (* Ton ab: rechter Lautsprecher *)
-2,-2,
-1, (* Player Stop, ist eigentlich unnötig *)
-2,-2,-2,-2,-2,-2,-2,-2,
2, (* Ton ab: linker Lautsprecher *)
-2,-2,
-1, (* Player Stop *)
-2,-2;
END=t;"
Das war's schon !
Das Script speichern wir als "Anim-Disk:Mobile.cags" ab und kopieren noch
das Programm "CAGSPlay" auf die Disk. Nun verschlüsseln wir mit
"Encryptor anim-disk:mobile" das Script und starten es danach durch
"CAGSPlay anim-disk:mobile" (Abbruch mit linker Maustaste).
(*---------------------------------------------------------------------------*)
VIII. Abschließende Bemerkungen
Sollen mit CAGS selbstartende Animationsdisketten erstellt werden, so ist
folgendes zu beachten:
-die xpkmaster.library muß sich in libs: befinden,
-sind die Frames NUKE-gepackt, so muß sich im Verzeichnis libs:compressors
die xpkNUKE.library befinden,
-CAGS2 benötigt unter KS1.3 die info.- und die icon.library,
-CAGSPlay benötigt in libs:compressors auch die xkpIDEA.library,
-das Programm CAGSPlay sollte verwendet werden (Script vorher verschlüsseln),
einerseits ist es beim Parsing bemerkbar schneller, andererseits kann von
Leuten, die den Encryptor nicht besitzen, das Script nicht gelesen werden,
außerdem benötigt das Programm unter KS1.3 NICHT die icon.- und die
info.library,
-sollte das System CAGS kommerziell vertrieben werden, so MUSS das Programm
CAGSPlay verwendet werden,
-unter OS2.0/3.0 muß vor dem Aufruf von CAGS in der startup-sequence ein
type- oder ein echo-Befehl stehen, sodaß das Shell-Window erscheint,
sonst ist nichts zu sehen !
Außerdem suchen CAGS2 und CAGSPlay vor jedem Start nach einem Font namens
"clean" (8 Punkte) im Verzeichnis fonts:, der für das Arbeitsdisplay verwendet
wird (ist besonders unter OS 1.3 zu empfehlen).
(*---------------------------------------------------------------------------*)
IX. CAGS3
CAGS3 wird es geben, sobald ich mir einen A4000 zugelegt habe.
Geplante Features:
-Unterstützung aller AA-Modi,
-Wiedereinführung der MIDI-Unterstützung durch MED
...